The present application relates to software development and more specifically to systems, methods, and patterns for implementing enterprise software applications.
Many types of business logic are implemented by enterprise software applications. For example, CRM (Customer Relationship Management) applications often implement business logic to perform price quotations and order capture for customers. Enterprise resource planning (ERP) systems are another example type of enterprise application, which are used to integrate management information from the multiple different portions of an organization.
Enterprise applications such as ERP and CRM software systems are very powerful, complex, and feature rich products. Given their complexity, even the most ordinary of tasks may require the user to possess a significant amount of knowledge or experience about the product. Moreover, the user manuals for these products also tend to be quite large and cumbersome, making it even more difficult for the user to understand how to operate the system.
In addition, the handling of any process to be performed in a typical enterprise application can itself be a very complex undertaking. The process may involve navigation though multiple different screens and/or interface forms. Each of these screens may require multiple interface items to be clicked, filled in, and/or selected. If the user does not process these screens and/or interface items in the correct order, with the correct information, or even picking the correct screen in the first place, then this could result in errors or failures for the process.
As is evident, enterprise applications are powerful tools that allow an enterprise to accomplish an extensive variety of functions, but this power also makes such tools very complicated to use. As a result, many ordinary users tend to have great difficulty in navigating though the various options and features to efficiently and effectively operate these applications.
Therefore, there is a need for an improved approach for implementing enterprise applications which addresses the complexity faced by end user of conventional enterprise applications.